import axios from 'axios'
import store from '@/store'
import router from '@/router'
import { Message } from 'element-ui'

const request = axios.create({
  // 👇此地址后端服务器已经配置好了CORS跨域，直接使用不需要配置代理服务器devSever
  // baseURL:'http://ihrm-java.itheima.net'
  baseURL: '/api',
  timeout: 5000
})

request.interceptors.request.use((config) => {
  // 🍑统一注入请求携带token
  if (store.getters.token) {
    config.headers['Authorization'] = `Bearer ${store.getters.token}`
  }
  return config
}, (error) => {
  return Promise.reject(error)
})
request.interceptors.response.use((response) => {
  const { success, message, data } = response.data
  //   要根据success的成功与否决定下面的操作
  if (!success) {
    Message.error(message) // 提示错误消息
    // 🍎抛出一个错误
    return Promise.reject(new Error(message))
  }
  return data
}, (error) => {
  if (error.response) {
    if (error.response.status === 401) {
      store.dispatch('user/logout')
      router.push('/login')
    }
    Message.error(error.message) // 提示错误信息
  }
  return Promise.reject(error) // 返回执行错误 让当前的执行链跳出成功 直接进入 catch
})

export default request
